<?php

//Tao Lop DOI_TUONG
class Hanghoa {

    private $_ID;
    private $_TEN_HANG_HOA;
    private $_MA_HH;
    private $_DON_VI_TINH_ID;
    private $_DON_GIA_NHAP;
    private $_DON_GIA_BAN;
    private $_DON_GIA_SI;
    private $_DON_GIA_LE;
    private $_IS_ACTIVE;

    public function getID() {
        return $this->_ID;
    }

    public function getTEN_HANG_HOA() {
        return $this->_TEN_HANG_HOA;
    }
    public function getMA_HH() {
        return $this->_MA_HH;
    }

    public function setMA_HH($MA_HH) {
        $this->_MA_HH = $MA_HH;
    }

        public function getDON_VI_TINH_ID() {
        return $this->_DON_VI_TINH_ID;
    }

    public function getDON_GIA_NHAP() {
        return $this->_DON_GIA_NHAP;
    }

    public function getDON_GIA_BAN() {
        return $this->_DON_GIA_BAN;
    }

    public function getDON_GIA_SI() {
        return $this->_DON_GIA_SI;
    }

    public function getDON_GIA_LE() {
        return $this->_DON_GIA_LE;
    }

    public function getIS_ACTIVE() {
        return $this->_IS_ACTIVE;
    }

    public function setID($ID) {
        $this->_ID = $ID;
    }

    public function setTEN_HANG_HOA($TEN_HANG_HOA) {
        $this->_TEN_HANG_HOA = $TEN_HANG_HOA;
    }

    public function setDON_VI_TINH_ID($DON_VI_TINH_ID) {
        $this->_DON_VI_TINH_ID = $DON_VI_TINH_ID;
    }

    public function setDON_GIA_NHAP($DON_GIA_NHAP) {
        $this->_DON_GIA_NHAP = $DON_GIA_NHAP;
    }

    public function setDON_GIA_BAN($DON_GIA_BAN) {
        $this->_DON_GIA_BAN = $DON_GIA_BAN;
    }

    public function setDON_GIA_SI($DON_GIA_SI) {
        $this->_DON_GIA_SI = $DON_GIA_SI;
    }

    public function setDON_GIA_LE($DON_GIA_LE) {
        $this->_DON_GIA_LE = $DON_GIA_LE;
    }

    public function setIS_ACTIVE($IS_ACTIVE) {
        $this->_IS_ACTIVE = $IS_ACTIVE;
    }

    public function SetHanghoa($row) {
        $this->setID($row->HH_ID);
        $this->setDON_VI_TINH_ID($row->DVT_ID);
        $this->setTEN_HANG_HOA($row->HH_HANG_HOA);
         $this->setMA_HH($row->HH_MA_HH);
        $this->setDON_GIA_NHAP($row->HH_DON_GIA_NHAP);
        $this->setDON_GIA_BAN($row->HH_DON_GIA_BAN);
        $this->setDON_GIA_SI($row->HH_DON_GIA_SI);
        $this->setDON_GIA_LE($row->HH_DON_GIA_LE);
        $this->setIS_ACTIVE($row->IS_ACTIVE);
    }

    public function insert($db = null) {
        if ($db != null) {
            $sql = "INSERT INTO `hang_hoa`
                                (
                                 
                                 `DVT_ID`,
                                 `HH_HANG_HOA`,
                                 `HH_DON_GIA_NHAP`,
                                 `HH_DON_GIA_BAN`,
                                 `HH_DON_GIA_SI`,
                                 `HH_DON_GIA_LE`,
                                 `IS_ACTIVE`
)
                    VALUES (
                                 :DON_VI_TINH_ID,
                                 :TEN_HANG_HOA,
                                 :DON_GIA_NHAP,
                                 :DON_GIA_BAN,
                                 :DON_GIA_SI,
                                 :DON_GIA_LE,
                                 :IS_ACTIVE);";
            $parameters = array(
                ":DON_VI_TINH_ID",
                ":TEN_HANG_HOA",
                ":DON_GIA_NHAP",
                ":DON_GIA_BAN",
                ":DON_GIA_SI",
                ":DON_GIA_LE",
                ":IS_ACTIVE"
            );
            $values = array(
                
                $this->getDON_VI_TINH_ID(),
                $this->getTEN_HANG_HOA(),
                $this->getDON_GIA_NHAP(),
                $this->getDON_GIA_BAN(),
                $this->getDON_GIA_SI(),
                $this->getDON_GIA_LE(),
                1);
            $types = array(
                PDO::PARAM_INT,
                PDO::PARAM_STR,
                PDO::PARAM_STR,
                PDO::PARAM_STR,
                PDO::PARAM_STR,
                PDO::PARAM_STR,
                PDO::PARAM_INT
            );
            $lastInsertID = $db->executeNonQuery($sql, $parameters, $values, $types, true);
            $this->setID($lastInsertID);
        }
    }

    public function delete($db = null) {
        if ($db != null) {
            $sql = "delete
                    from `hang_hoa`
                    where `HH_ID` = :ID;";
            $parameters = array(":ID");
            $values = array($this->getID());
            $types = array(PDO::PARAM_INT);
            $result = $db->executeNonQuery($sql, $parameters, $values, $types);
            return $result;
        }
    }

    public function update($db = null) {
        if ($db != null) {
            $sql = "UPDATE `hang_hoa`
                    SET  `DVT_ID`=:DVT_ID,
                         `HH_HANG_HOA`=:HH_HANG_HOA,
                          `HH_DON_GIA_NHAP`=:HH_DON_GIA_NHAP,
                          `HH_DON_GIA_BAN`=:HH_DON_GIA_BAN,
                          `HH_DON_GIA_SI`=:HH_DON_GIA_SI,
                           `HH_DON_GIA_LE`=:HH_DON_GIA_LE
                    WHERE `HH_ID` = :HH_ID;";
            $parameters = array(
                ":HH_ID", ":DVT_ID",
                ":HH_HANG_HOA", ":HH_DON_GIA_NHAP",
                ":HH_DON_GIA_BAN", ":HH_DON_GIA_SI", ":HH_DON_GIA_LE"
            );
            $values = array(
                $this->getID(), $this->getDON_VI_TINH_ID(),
                $this->getTEN_HANG_HOA(), $this->getDON_GIA_NHAP(),
                $this->getDON_GIA_BAN(),$this->getDON_GIA_SI(),
                $this->getDON_GIA_LE());
            $types = array(
                PDO::PARAM_INT,PDO::PARAM_INT,
                PDO::PARAM_STR,PDO::PARAM_STR,
                PDO::PARAM_STR, PDO::PARAM_STR,
                PDO::PARAM_STR
            );
            $result = $db->executeNonQuery($sql, $parameters, $values, $types);
            return $result;
        }
    }

    public function getByID($db = null) {
        if ($db != null) {
            $sql = "SELECT
                         `HH_ID`,
                         `DVT_ID`,
                          `HH_HANG_HOA`,
                          `HH_MA_HH`,
                          `HH_DON_GIA_NHAP`,
                          `HH_DON_GIA_BAN`,
                           `HH_DON_GIA_SI`,
                           `HH_DON_GIA_LE`,
                            `IS_ACTIVE`
                      FROM `hang_hoa`
                      WHERE HH_ID = :ID";
            $parameters = array(":ID");
            $values = array($this->getID());
            $types = array(PDO::PARAM_INT);
            $rows = $db->executeQuery($sql, $parameters, $values, $types);
            if ($rows != null) {
                $row = $rows->fetch();
                    $this->setID($row->HH_ID);
                    $this->setDON_VI_TINH_ID($row->DVT_ID);
                    $this->setTEN_HANG_HOA($row->HH_HANG_HOA);
                    $this->setMA_HH($row->HH_MA_HH);
                    $this->setDON_GIA_NHAP($row->HH_DON_GIA_NHAP);
                    $this->setDON_GIA_BAN($row->HH_DON_GIA_BAN);
                    $this->setDON_GIA_SI($row->HH_DON_GIA_SI);
                    $this->setDON_GIA_LE($row->HH_DON_GIA_LE);
                    $this->setIS_ACTIVE($row->IS_ACTIVE);
            }
            return $this;
        }
    }

    
    public function getByMA_HH($db = null) {
        if ($db != null) {
            $sql = "SELECT
                         `HH_ID`,
                         `DVT_ID`,
                          `HH_HANG_HOA`,
                          `HH_MA_HH`,
                          `HH_DON_GIA_NHAP`,
                          `HH_DON_GIA_BAN`,
                           `HH_DON_GIA_SI`,
                           `HH_DON_GIA_LE`,
                            `IS_ACTIVE`
                      FROM `hang_hoa`
                      WHERE `HH_MA_HH` = :HH_MA_HH";
            $parameters = array(":HH_MA_HH");
            $values = array($this->getMA_HH());
            $types = array(PDO::PARAM_STR);
            $rows = $db->executeQuery($sql, $parameters, $values, $types);
            if ($rows != null) {
                $row = $rows->fetch();
                    $this->setID($row->HH_ID);
                    $this->setDON_VI_TINH_ID($row->DVT_ID);
                    $this->setTEN_HANG_HOA($row->HH_HANG_HOA);
                    $this->setMA_HH($row->HH_MA_HH);
                    $this->setDON_GIA_NHAP($row->HH_DON_GIA_NHAP);
                    $this->setDON_GIA_BAN($row->HH_DON_GIA_BAN);
                    $this->setDON_GIA_SI($row->HH_DON_GIA_SI);
                    $this->setDON_GIA_LE($row->HH_DON_GIA_LE);
                    $this->setIS_ACTIVE($row->IS_ACTIVE);
            }
            return $this;
        }
    }
    
    public function getList($db = null) {
        if ($db != null) {
            $sql = "SELECT
                        `HH_ID`,
                         `DVT_ID`,
                                 `HH_HANG_HOA`,
                                 `HH_DON_GIA_NHAP`,
                                 `HH_DON_GIA_BAN`,
                                 `HH_DON_GIA_SI`,
                                 `HH_DON_GIA_LE`,
                                 `IS_ACTIVE`
                  FROM `hang_hoa`";
            $rows = $db->executeQuery($sql);
            $objects = array();
            if ($rows != null) {
                while ($row = $rows->fetch()) {
                    $hang_hoa = new Hanghoa();
                    $hang_hoa->setID($row->HH_ID);
                    $hang_hoa->setDON_VI_TINH_ID($row->DVT_ID);
                    $hang_hoa->setTEN_HANG_HOA($row->HH_HANG_HOA);
                    $hang_hoa->setDON_GIA_NHAP($row->HH_DON_GIA_NHAP);
                    $hang_hoa->setDON_GIA_BAN($row->HH_DON_GIA_BAN);
                    $hang_hoa->setDON_GIA_SI($row->HH_DON_GIA_SI);
                    $hang_hoa->setDON_GIA_LE($row->HH_DON_GIA_LE);
                    $hang_hoa->setIS_ACTIVE($row->IS_ACTIVE);

                    $objects[] = $hang_hoa;
                }
                return $objects;
            }
        }
    }

     public function getList_($db = null) {
        if ($db != null) {
            $sql = "SELECT
                        `HH_ID`,
                         `DVT_ID`,
                                 `HH_HANG_HOA`,
                                 `HH_DON_GIA_NHAP`,
                                 `HH_DON_GIA_BAN`,
                                 `HH_DON_GIA_SI`,
                                 `HH_DON_GIA_LE`,
                                 `IS_ACTIVE`
                  FROM `hang_hoa` WHERE `HH_MA_HH` IS NULL";
            $rows = $db->executeQuery($sql);
            $objects = array();
            if ($rows != null) {
                while ($row = $rows->fetch()) {
                    $hang_hoa = new Hanghoa();
                    $hang_hoa->setID($row->HH_ID);
                    $hang_hoa->setDON_VI_TINH_ID($row->DVT_ID);
                    $hang_hoa->setTEN_HANG_HOA($row->HH_HANG_HOA);
                    $hang_hoa->setDON_GIA_NHAP($row->HH_DON_GIA_NHAP);
                    $hang_hoa->setDON_GIA_BAN($row->HH_DON_GIA_BAN);
                    $hang_hoa->setDON_GIA_SI($row->HH_DON_GIA_SI);
                    $hang_hoa->setDON_GIA_LE($row->HH_DON_GIA_LE);
                    $hang_hoa->setIS_ACTIVE($row->IS_ACTIVE);

                    $objects[] = $hang_hoa;
                }
                return $objects;
            }
        }
    }
}
